package com.util;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class h2Unit {
    public static void h2(byte[] hash, byte[] message, int mlen) {
        try {
            byte[] K = new byte[DataUnit.HASH_LEN];
            // 第一次哈希计算
            MessageDigest sha256 = MessageDigest.getInstance("SHA-256");
            sha256.update((byte) 1);  // 处理标志 1
            for (int j = 0; j < mlen; j++) {
                sha256.update(message[j]);
            }
            byte[] firstHash = sha256.digest();
            System.arraycopy(firstHash, 0, K, 0, DataUnit.HASH_LEN);
            System.arraycopy(K, 0, hash, 0, DataUnit.HASH_LEN);

            // 第二次哈希计算
            sha256 = MessageDigest.getInstance("SHA-256");
            sha256.update((byte) 2);  // 处理标志 2
            for (int j = 0; j < mlen; j++) {
                sha256.update(message[j]);
            }
            byte[] secondHash = sha256.digest();
            System.arraycopy(secondHash, 0, K, 0, DataUnit.HASH_LEN);
            System.arraycopy(K, 0, hash, DataUnit.HASH_LEN, 4);  // 复制前 4 个字节到 hash 的后面

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
}
